import colorsys
import matplotlib.pyplot as plt

def get_distinct_color(id, saturation=0.8, value=0.9):
    """根据ID生成不同的颜色，使用HSV色彩空间"""
    # 将ID映射到0-1的色调范围
    hue = id / 360.0  # 假设ID范围不超过360，否则需要调整
    
    # 转换HSV到RGB (saturation和value保持固定，只改变hue)
    r, g, b = colorsys.hsv_to_rgb(hue, saturation, value)
    
    return (r, g, b)

# 示例：生成10个不同的颜色并显示
fig, ax = plt.subplots(figsize=(10, 2))

for i in range(10):
    color = get_distinct_color(i)
    ax.bar(i, 1, color=color, label=f"ID {i}")

ax.legend(loc='upper right')
ax.set_xticks([])
ax.set_yticks([])
plt.show()